#ifndef PROCESO_H_
#define PROCESO_H_
#include "logger/Logger.h"
#include "Loggeable.h"
#include <signal.h>

class Proceso: public Loggeable {
protected:
	const string& nombreProceso;
	pid_t pid;

public:
	// Si modoDebug = true, entonces loggea en el archivo
	Proceso(const string& nombre, bool modoDebug);
	// Constructor copia
	Proceso(const Proceso& otro);
	virtual ~Proceso();
	// Este metodo va a tener toda la funcionalidad del proceso
	virtual void run() = 0;
	// Devuelve el pid del proceso
	pid_t getPID() const;
	void setPID(pid_t pid);
	// Envia una SIGINT al proceso pid
	virtual void stop() const;
	const string& getNombreProceso() const;
};

#endif /* PROCESO_H_ */
